Accompanying development of network communications and electronic business transactions recently, assurance of securities in communications becomes an important problem. A method for assuring securities is adoption of cryptographic technologies. In recent years, communications making use of a variety of cryptographic technologies are actually carried out.
For example, a system for carrying out authentication processing or a system for encrypting and decrypting transceiving data has been implemented. In the system, an encryption/decryption processing module is embedded in a small-size device such as an IC card. A reader/writer functioning as a data read/write device carries out communications with the IC card in order to exchange the data with the IC card.
There are a variety of encryption/decryption algorithms largely classified into a public key cryptosystem and a common key cryptosystem. In accordance with the public key cryptosystem, encryption and decryption keys are set as different keys such as public and secret keys. In accordance with the common key cryptosystem, encryption and decryption keys are set as a common key.
The common key cryptosystem includes a variety of algorithms. In accordance with one of the algorithms, the common key is used as a base for generating a plurality of keys to be utilized in repetitively executing data transform processing for transforming data in block units such as 64-bit block units and 128-bit block units. An algorithm of a common key block cryptosystem is a representative algorithm adopted in such a key generation method and the data transform processing.
In accordance with the representative algorithm of the common key block encryption/decryption, the data transform process carried out in the common key block encryption/decryption processing includes nonlinear and linear transforms. Thus, when designing an elemental cryptographic technology such as the common key block cryptographic technology, it is necessary to determine a transform function for carrying out the nonlinear transform and a matrix to be used in a linear transform process.
For example, if encryption/decryption processing operation is to be carried out in an IC card, hardware for implementing an encryption/decryption algorithm must be embedded and data including a program (a software program) must be stored in a memory included in the hardware.
In recent years, attempts to enhance convenience are made in order to make it no longer necessary for the user to own a number of cards by, for example, providing an information processing terminal such as an IC card or a hand phone with a variety of data processing functions. However, in this case, it is necessary to make it compatible with encryption/decryption algorithms adopted in the operation system of every institution. In order to provide an information processing terminal such as an IC card or a hand phone with a configuration capable of carrying out a plurality of encryption/decryption algorithms different from each other, it is necessary to provide a hardware for executing the algorithms and include software for implementing the algorithms in the information processing terminal, causing a problem of a high cost.